﻿using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using EntidadesCompartidas;
using Persistencia;
using System.Data.SqlClient;
using System.Data;

namespace Logica.Datos
{
    public class LogCasa:Interfaces.ILCasa
    {
        //Elementos que determinan el singleton
        //1- Atributo de Clase
        private static LogCasa _miLogicaCasa = null;
        //2- Constructor
        private LogCasa() { }
        //3- Metodo de Clase
        public static LogCasa GetCasa()
        {
            if (_miLogicaCasa == null)
            {
                _miLogicaCasa = new LogCasa();
            }
            return _miLogicaCasa;

        }
        /////////////////////////////////////////////////////////////////////////////////////////////


        #region Miembros de ILCasa

        public Casa BuscarCasa(int pId)
        {
            Persistencia.Interfaces.IPersCasa LCasa = FabricaPersistencia.getPersCasa();
            return (LCasa.BuscarCasa(pId));
        }

        public List<Casa> ListarCasas()
        {
            Persistencia.Interfaces.IPersCasa LCasa = FabricaPersistencia.getPersCasa();
            return (LCasa.ListarCasas());
        }
            
        public int AltaCasa(Casa pCasa)
        {
            Persistencia.Interfaces.IPersCasa LCasa = FabricaPersistencia.getPersCasa();
            return (LCasa.AltaCasa(pCasa));
        }

        public bool ModificarCasa(Casa pCasa)
        {
            Persistencia.Interfaces.IPersCasa LCasa = FabricaPersistencia.getPersCasa();
            return (LCasa.ModificarCasa(pCasa) == 1);
        }

        public bool EliminarCasa(Casa pCasa)
        {
            Persistencia.Interfaces.IPersCasa LCasa = FabricaPersistencia.getPersCasa();
            return (LCasa.EliminarCasa(pCasa) == 1);
        }

        #endregion


        public List<Casa> ListarCasas(Usuario usu)
        {
            Persistencia.Interfaces.IPersCasa LCasa = FabricaPersistencia.getPersCasa();
            return (LCasa.ListarCasas(usu));
        }
    }
}
